package org.example.xsda.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.time.LocalDateTime;

/**
 * 学生异动记录实体类
 * 记录学生状态变更历史，包括转学、休学、复学、退学等
 */
@Data
@TableName("student_status_change")
public class StudentStatusChange {
    
    @TableId(type = IdType.AUTO)
    private Long id;
    
    /** 学生ID */
    private Long studentId;
    
    /** 原状态：1-在籍 2-休学 3-毕业 4-退学 */
    private Integer oldStatus;
    
    /** 新状态：1-在籍 2-休学 3-毕业 4-退学 */
    private Integer newStatus;
    
    /** 变更类型：transfer-转学 suspension-休学 return-复学 dropout-退学 */
    private String changeType;
    
    /** 原班级ID */
    private Long oldClassId;
    
    /** 新班级ID */
    private Long newClassId;
    
    /** 原院系ID */
    private Long oldDeptId;
    
    /** 新院系ID */
    private Long newDeptId;
    
    /** 变更原因 */
    private String reason;
    
    /** 关联的审批ID */
    private Long approvalId;
    
    /** 操作人ID */
    private Long operatorId;
    
    /** 变更时间 */
    private LocalDateTime changeTime;
    
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}

